<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">

<ui:composition>
	<h:form prependId="false">
		<p:idleMonitor  timeout="#{session.maxInactiveInterval * 1000 - 60000}" rendered="#{(request.remoteUser != null)}"
            onidle="startIdleMonitor()" onactive="timeoutDialog.hide()" />  
            
		<p:dialog 
				  id="timeoutSession"
				  header="Your session is about to expire!"
                  widgetVar="timeoutDialog" 
                  showEffect="fade" 
                  hideEffect="fade" 
                  modal="true"
                  width="400"
                  height="110"
                  closable="false"
                  draggable="false"
                  resizable="false"   
                  appendToBody="true"
                  onHide="stopCount()"
                  onShow="doTimer()"
                  >              
          		<br/>
          		<p>
            		<span class="ui-icon ui-icon-alert" style="float:left; margin: 8px 8px 0;"></span>
            		<p:panel>You will be logged off in
            			<span id="dialog-countdown" style="font-weight:bold"></span>
            			&nbsp;seconds.
            		</p:panel>
          		</p>
          		<br/>
         		<p style="font-weight: bold;">Move your cursor to continue your session!</p>          
        </p:dialog> 
        
  	</h:form>
  	<script type="text/javascript">


		  var TIME = 45;
		  var countTimer=TIME;
		  var processTimer;
		  var timer_is_on=0;
		  var redirectPage = "#{request.contextPath}/logout";
		  
		  var countDownDiv = "dialog-countdown";
	      var txtCountDown = null;
	      if(!txtCountDown)
	        txtCountDown = document.getElementById(countDownDiv);

	  
	    function startIdleMonitor(){
	        countTimer=TIME;
	    	txtCountDown.innerHTML = countTimer;
	    	timeoutDialog.show();
	    }
		function timedCount()
		{
          txtCountDown.innerHTML = countTimer;
		  if(countTimer == 0){
		    stopCount();
		    window.location.href = redirectPage;
		    return;
		  }
		  countTimer=countTimer-1;
		  processTimer=setTimeout("timedCount()",1000);
		}
		function doTimer()
		{
		  if (!timer_is_on){
		    timer_is_on=1;
		    timedCount();
		  }
		}
		function stopCount()
		{
		  clearTimeout(processTimer);
		  timer_is_on=0;
		}
	</script>
    

    
</ui:composition>
</html>